package com.winshare.saleAssistant.mapper;

import com.winshare.saleAssistant.domain.dto.req.BaseIdDTO;
import com.winshare.saleAssistant.domain.dto.req.ProductInfoVersionCreateDTO;
import com.winshare.saleAssistant.domain.dto.req.ProductInfoVersionQueryDTO;
import com.winshare.saleAssistant.domain.dto.req.ProductInfoVersionUpdateDTO;
import com.winshare.saleAssistant.domain.dto.resp.ProductInfoVersionRespDTO;
import com.winshare.saleAssistant.domain.entity.ProductInfoVersionDO;
import com.winshare.saleAssistant.domain.query.ProductInfoVersionQuery;
import org.mapstruct.Mapper;
import org.mapstruct.ReportingPolicy;
import org.mapstruct.factory.Mappers;

import java.util.List;

@Mapper(unmappedTargetPolicy = ReportingPolicy.IGNORE)
public interface ProductInfoVersionMapStruct {

    ProductInfoVersionMapStruct INSTANCE = Mappers.getMapper(ProductInfoVersionMapStruct.class);

    ProductInfoVersionDO fromProductInfoVersionCreateDTO(ProductInfoVersionCreateDTO productInfoVersionCreateDTO);

    ProductInfoVersionDO fromProductInfoVersionUpdateDTO(ProductInfoVersionUpdateDTO productInfoVersionUpdateDTO);

    ProductInfoVersionDO fromBaseIdDTO(BaseIdDTO baseIdDTO);

    ProductInfoVersionRespDTO fromProductInfoVersionDO(ProductInfoVersionDO productInfoVersionDOInSql);

    ProductInfoVersionQuery fromProductInfoVersionQueryDTO(ProductInfoVersionQueryDTO productInfoVersionQueryDTO);

    List<ProductInfoVersionRespDTO> fromProductInfoVersionDOList(List<ProductInfoVersionDO> productInfoVersionDOList);
}
